package me.dengfengdecao.android.photogallery;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;

/**
 * 子类会实现createFragment方法返回一个由activity托管的fragment实例
 * 子类可以选择覆盖getLayoutResId()方法返回所需布局ID
 */
public abstract class SingleFragmentActivity extends FragmentActivity {

    // 由子类来创建具体的Fragment对象
    protected abstract Fragment createFragment();

    // 可由子类自己提供布局资源
    protected int getLayoutResId() {
        return R.layout.activity_fragment;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(getLayoutResId());

        //得到FragmentManager
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment fragment = fragmentManager.findFragmentById(R.id.fragmentContainer);
        //使用容器视图资源ID获取fragment交由FragmentManager管理
        //创建一个新的fragment事务，加入一个添加操作，然后提交该事务。
        if (fragment == null) {
            fragment = createFragment();
            fragmentManager.beginTransaction()
                    .add(R.id.fragmentContainer, fragment)
                    .commit();
        }

    }

}
